Rinitialiser un mot de passe root sous GNU/Linux. 

                                                              par Dec0y
-----------------------------------------------------------------------

Sommaire

  I. Introduction
 II. Pratique
III. Scurisation
 IV. Remarque
  V. Conclusion

-----------------------------------------------------------------------

I. Introduction.
================

  Dans cet article je vais prsenter 3 mthodes permettant de 
rinitialiser le password root d'un systme GNU/Linux. (Applicable 
seulement avec un accs physique sur la machine concerne)

  Voici les 3 mthodes qui seront abordes :
 
    a) Boot du systme en "mode simple utilisateur" (ou 'single-user 
       mode').
    b) Utilisation d'un LiveCD.
    c) Monter le disque  partir d'un PC diffrent pour diter le 
       fichier passwd.

  Puis je prsenterais une procdure de scurisation.

II. Pratique.
=============

Bon entrons tout de suite dans le vif du sujet :-) 

A) Boot du systme en "mode simple utilisateur".
------------------------------------------------

  Nous allons voir comment utiliser cette mthode avec LILO et GRUB.

  b) LILO.

    Il faut rebooter l'OS en "single-user mode" :

    1) Rebootez le systme. Quand LILO apparat tapez : 
    "LE_NOM_DU_KERNEL single" puis sur la touche "Entre" ; Exemple -> 
    si le kernel s'appelle 'linux' on tapera : "linux single" puis la 
    touche "Entre" (et bien sr sans les guillemets...);
    En faisant a le systme s'amorcera et vous donnera un shell root;
    Il se peut que le systme vous demande un mot de passe root pour 
    vous loguer en single-user mode;
    Si c'est le cas (dans la majorit des cas ca n'arrivera pas), au 
    prompt de LILO tapez : 'LE_NOM_DU_KERNEL init=/bin/bash';

    2) Une fois que le systme a boot vous aurez un shell avec les 
    droits root; (si vous voulez vrifier que vous tes en root tapez 
    'id' vous aurez un truc du genre : 'uid=0(root) gid=0(root) 
    groupes=0(root)');
    Maintenant il faut changer le mot de passe  l'aide de la commande 
    'passwd';

    3) Rebootez le systme ('reboot' pour les incultes :D) et loguez 
    vous en root avec le mot de passe que vous venez de dfinir. 


  b) GRUB.

    Vous l'aurez compris que l aussi il faut rebooter en "single-user mode" :

    1) Rebootez la machine. Quand GRUB apparat mettez en 'surbrillance'
    le noyau vous voulez amorer et appuyez sur la touche 'e';
    (Vous aurez un autre cran qui s'affichera);

    2) Reprez la ligne qui commence par "kernel=..." mettez l en 
    surbrillance et pressez la touche 'e' (pour passer en mode dition);

    3)  la fin de cette ligne ajoutez : 'single' et appuyez sur entre
    pour sauvegarder le changement;

    4) Ensuite pressez la touche 'b' pour booter;

    5) Une fois que l'OS a boot, vous tes devant un shell avec les 
    droits root (hh);

    6) Maintenant changez le mot de passe  l'aide de la commande 
    'passwd';

    7) Maintenant rebootez la machine vous pouvez vous loguez en root 
    avec le pass que vous venez de dfinir.

  Faile non ? ;)


B) Utilisation d'un LiveCD.
---------------------------

  Pour cette mthode l il nous faut un LiveCD de N'IMPORTE QUELLE 
distribution. (la dmarche reste la mme qu'importe le LiveCD choisi).
Perso, j'ai utilis cette mthode avec le LiveCD de GENTOO...

Voyons la mthode : 

  1) Rebootez le systme en dmarrant avec le LiveCD.

  2) Au prompt, crez un repertoire avec le nom que vous voulez, par 
  exemple : "mkdir partoche";
  Ce rpertoire nous permettra d'y monter le systme de fichier.

  3) Maintenant il faut monter le disque concern dans le rpertoire 
  que nous venons de crer: "mount /dev/hda3 partoche";
  Il vous faudra videmment remplacez le "/dev/hda3" par le nom du 
  disque que vous voulez monter. (exemple : "/dev/hdb2")

  4) Placez vous dans le rpertoire "etc" du systme de fichier que vous 
  venez de monter : "cd partoche/etc";

  5) Editez le fichier "shadow" avec votre diteur favori (pour moi 
  c'est 'nano') : "nano -w shadow"; 
  Reprez la ligne avec les informations de l'utilisateur root a 
  devrait ressembler  ca : 
    
    root:$1$Kjahz/cH$Dghp1zrSrB.0kEA6634Tv1:12707:0:::::

  Il faut effacer des informations de la manire suivante :

    root:$1$Kjahz/cH$Dghp1zrSrB.0kEA6634Tv1:12707:0::::: <- ligne d'origine;
    root::12707:0::::: <- ligne modifie;

  6) Sauvegardez le fichier et quittez l'diteur.

  7) Dmontez le disque :
    "cd";
    "umount partoche";

  8) Rebootez le systme normalement et... magie ! Vous pouvez vous 
  loguer en root sans mot de passe ! hh.. ;)


C) Monter le disque  partir d'un PC diffrent pour diter le fichier 'shadow'.
-------------------------------------------------------------------------------

Enfin la dernire mthode. 
Si par pur _hasard_ (lol) vous avez un disque dur avec un LINUX dessus
et que vous voulez booter avec pour y rcuprer des informations, la 
mthode est la mme que ci-dessus sauf que vous fates cela  partir de 
votre systme d'exploitation a vous ! Simple non ? :)

III. Scurisation
=================

  Bien beau tout a mais comment je peux scuriser ma linuxb0x ?

  Aprs la lecture de ce qui a t crit jusque l vous vous dites : 

  "Bordel ! c'est aussi facile de hacker ma linuxb0x !! Ya pas un moyen 
   de 'scuriser' tout a ?"

  Mais si bien sr ! Je vais vous expliquer tout a dans cette partie ;-).

  Vous pourriez diter votre "/etc/inittab" pour y ajouter une ligne de 
faon  faire en sorte qu'il faut un mot de passe root pour booter 
"single-user mode".

  Mais souvenez-vous ce que je vous ai dit plus haut.
Il suffirait juste d'ajouter au prompt de lilo le "init=/bin/bash" et 
hop, I fuck the password ! :D 
  Donc cela serait inutile de vous montrer comment modifier le fichier 
"/etc/inittab" vu que cette 'protection' est facilement contournable.

  Cependant vous pouvez protger votre chargeur de dmarage par mot de
passe ! 

  Voici la dmarche pour LILO (les manip ci-dessous sont  faire en 
root bien sur.. ;) :

  a) Editez le fichier "/etc/lilo.conf";

  b) Ajoutez-y la ligne suivante avant le premier "image=...." :
     "password=votre_mot_de_passe"

  c) Ensuite tapez la commande : lilo -v pour effectuer le changement.

  d) Changez les droits d'accs sur le fichier "/etc/lilo.conf".
     Pour faire en sorte que seul l'utilisateur root ai le droit de 
     lire/modifier ce fichier:

        "chmod 600 /etc/lilo.conf"

  e) Voil votre OS est.. disons un peu plus "scuris" ;)

Maintenant la dmarche pour GRUB [toujours en root..] :

  a) Tapez la commande :
     "grub-md5-crypt" et pressez la touche entre.

  b) Il va vous demandez de saisir un mot de passe puis il vous 
     affichera un "hash MD5" pour votre mot de passe, copiez le dans un
     TXT vous en aurez besoin..

  c) Editez votre fichier "/boot/grub/grub.conf" et ajoutez-y 
     (en premire ligne) : "password --md5 le_hash_MD5_de_votre_mot_de_passe"

  d) Sauvegardez , rebooter et regardez les changements par vous mme. ;-)

IV. Remarque.
=============

  Maintenant je fais une petite remarque. 
Vous conevez bien videmment que la mthode 'c' s'avre quasi-"IMPOSSIBLE"
si le systme de fichier du disque dur est crypt.
  Justement ci-dessous j'ai mis quelques liens pour savoir 
comment on crypte un FS sous linux.

http://www.saout.de/tikiwiki/tiki-index.php
http://docs.linux.com/article.pl?sid=04/06/07/2036205&tid=72&tid=14&tid=35
http://gentoo-wiki.com/SECURITY_Encrypting_Root_Filesystem_with_DM-Crypt
(pour les utilisateurs de gentoo :P)

  Je pense qu'avec a vous saurez comment on crypte un systme de fichier. 
Et par consquent vous aurez le moyen de vous protger de la mthode 'c' 

V) Conclusion
=============

  Bon voil maintenant vous savez comment on efface un mot de passe root 
sur une machine GNU/Linux.
Vous savez aussi comment viter que cela ne vous arrive en "scurisant" 
votre chargeur de dmarrage par mot de passe.
Et bien sr vous savez aussi crypter un FS ! (n'est-ce pas ?)  ;)
Bon j'espre que certains ont trouv cette article intressant.. si 
c'est pas le cas bah euh.. tant pis ! :D 

Enjoy !

									 Dec0y
